LM335 unstable temperature readings

I've for a LM335 connected to A0 which is powered by a very stable 5V from a external PSU.

I'm taking readings every 5 mins and finding they seem to be fairly unstable. Any ideas how I can do this? Or is the LM335 just inherently unstable?

Celsius readings:

19.6
21.2
18.7
19.7
18.6
19.6
15.5
20

I've got it wired up like this:

I've checked the 5V and its a stable 5.02V and the reading on A0 is also a stable 2.95V

If the output of the sensor really is stable at 2.95 volts (which corresponds to 295 K if the calibration is correct) then something is wrong with your program or the Arduino power supply voltage, which sets the ADC reference, is fluctuating for some reason.

I recommend moving on from the Fritzing diagrams; they are for complete novices, not very informative and often confusing or ambiguous. For example, presumably the black thing to the left of the diagram is a potentiometer, but what resistance value? If you are using the 220 ohm resistor suggested by that diagram to set the LM335 operating current, then that does not correspond to the manufacturer's recommended operating conditions for the LM335 of 1 mA or less. Instead, it is close to the upper limit where self-heating might be a problem. See the datasheet.

I think I solved the problem - looks like the 5V was not as stable as I thought. There was some signal noise on the line so I had to use a 1000uF cap which seems to eliminate it. Its a lot more stable now.