Hola Nico. Tal como te dijo Gary es un poco complicado, porque tiene muuuuucha excepciones, pero una forma de clarificar un poco las diferencias sería:
1. In= Dentro de o rodeado de o por.
2. On= Sobre, hablando de una superficie, por ejemplo: On the top of the mountain.
3. At= Cercano a, por ejemplo: "I'm at the door", se supone que estoy frente a una puerta, o sea estoy en la puerta, no sobre ella, no dentro de la puerta, pero aún así estoy "en la puerta".