The biggest difference between "in" and "at" is that "in" describes your location more specifically while "at" is more general.
"He is at the stadium" Yes, but where at the stadium is he? Inside or outside?
"He is in the stadium" let's us know that he is inside the stadium.
"He's at school." Again, we have the general area but not the specifics.
"He is in his classroom."
However, when referring to cities or countries, we generally use "in" rather than "at".