Depois de perceber que esse é um daqueles tópicos que raramente obtém um consenso nos foruns de línguas estrangeiras, eu pensei que seria importante criar minha própria perspectiva. Na verdade, não é que deixe de existir um consenso dentro desse assunto em particular em termos gramaticas. Mas como AT e IN, em muitas situações, são usados de forma intercambiável (e essa aliás é a primeira dica), elas acabam causando bastante confusão. Vamos lá!
AT
1) você pode usar essa preposição pra se referir a algo ou alguém que se encontra dentro ou próximo de alguma localização. Portanto, se alguém disser "I'm at the mall", isso implicaria que ele pode tanto estar dentro dele ou nas áreas externas que pertencem a ele e que estão próximas a ele, como estacionamento.
2) at também é considerado uma preposição mais específica, que como preposição de lugar, se refere a lugares menores e mais preciso. Por exemplo, se você está no mesmo espaço interno que outra pessoa mas não consegue achá-la, você pode querer ligar pra perguntar. As respostas podem variar: I'm at the desk; I'm at the door; I'm at the elevator (nesse caso, próximo dele); I'm at the table.
IN
1) use essa preposição pra indicar que alguem ou alguma coisa está dentro de um limite físico, especialmente quando esse limite é maior, menos específico que nos contextos de at. I was born in Brazil; I live at № 29 D’alberto Road IN Lagos; I am in China at the Great Wall.
2) IN também passa o sentido literal de que algo ou alguém está dentro (inside) de alguma área. Por exemplo: I am in the elevator. Como visto anteriormente, I'm at the elevator também é possível, mas indica que você está próximo ao elevador, e não dentro.
PLUS) Para afastar mais ainda AT de IN, eu encontrei uma observação bastante interessante. Nela, IN significa estar dentro ou envolvido, enquanto AT significa estar na localização de forma generalizada ou simplesmente comparecendo. Veja:
I am in a football game (eu sou parte de um jogo de futebol e participo de maneira direta)
I am at a football match (eu estou num lugar generalizado onde há um jogo de futebol e eu estou apenas comparecendo)
PLUS 2) Como eu comentei na introdução do post, apesar desta lista apontando diferenças, at e in são usados em algumas ocasiões de maneira intercambiável. Ou seja, I am in school & I am at school, dependendo da intenção de quem fala, podem passar o mesmo significado. Porém, em contexto onde o sentido é mais específico, to be at school significa estar fisicamente na escola, enquanto to be in school significa estar obtendo educação formal. Veja:
Has John graduated yet? No, he’s still in school.
Mom, can you pick me up? No, I didn’t go to Jenny’s house; I’m at school.
Fontes: https://www.quora.com/Is-it-right-to-say-I-am-At-school-or-Im-in-school
https://www.quora.com/What-is-the-difference-between-in-and-at-How-would-you-explain-the-difference-between-these-two-prepositions-to-a-kid