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.