My only comments were with respect to voltage fluctuations. If the voltage changes, then the reading will change, as you are multiplying the 'analog' input by a voltage-per-step and conversion factor to get a temperature. So variation in voltage gets variation in temperature (which is how the temperature is measured in the first place!). Have you check the voltage with a multimeter to verify it stays constant?
For accurate readings you don't need to have precision (ie always 5V) power supply, just a predictable one (ie, constant). I wrote a small library (see the code repository below) that calibrates the voltage against the Arduino internal reference and produces more accurate results for a given voltage level. I don't think this will help you as the readings change over time, but you may want to look at your code compared to the examples & library there to see if there is a significant difference.
You may also want to look at dry or bad solder joints for high resistance, broken wires, etc. With a breadboard you can get unreliable connections, so remove and reinsert components and wires. Standard stuff for when you get voltage variation.