Problemas con analogRead()

Lo que tienes es un problema de desbordamiento

si defines algo como entero como aquí

int c= (500*Temperatura)/1023;

resulta que si Temperatura fuera digamos 1000 tienes esta cuenta

1000x500 = 500000 y eso supera 32768 = 2^15 por lo tanto la aritmetica desborda y pasa a negativo porque justamente la notación con el bit 15 en 1 es para enteros negativos que van hasta 2^15-1

Entonces o defines como long o usas float.

Como siempre me queda algo por decir pongo las cosas de otro modo, en términos de temperatura.

Todo lo que supere 32768/500 = 65 en tu AD dará un desbordamiento.

o sea que traducido una vez mas 32768/500 es lo que corresponde a 32 grados.