Nobody ever listens to me when I tell them that the way to handle delays and timers is with the Time and TimeAlarm libraries. You can set a timer to fire every two seconds and update the display. This will run without any delay() calls and leave the processor free to do something else, like check for user input. Doing it for a second is a bit iffy since that's its smallest granularity, but most often, we don't need a second, we need a delay of some kind and we just choose a second. Yes, you can have multiple timers and alarms.
I use this set of libraries extensively to handle changing displays, where I show something for a couple of seconds and something else for a couple of seconds. I also use it to have things report on a schedule; whether they report hourly, daily, every 10 seconds, etc. I have it turn things on at 8 and off at 10. It just works. If you don't need the actual time, just set it to whatever comes to mind, it will keep time and establish timers and alarms from there. I sync my stuff up off a GPS chip, but you certainly don't have to be that extreme.
A very tiny bit hard to understand at first, but once you use it, it turns out to be incredibly easy. You can turn a simple arduino into a multiprocessor pretty easily (albeit, a slow one). But, like I said, no one listens to me when I talk about it.
For temperature readings, I use a moving average of several readings. Temperature sensors can react too quickly to breezes and such for use in a home thermostat, so I slow them down a bunch by sampling a lot and averaging. I don't usually put delays in the read because I want the processor available for other things delay() locks everything out except interrupts.
Here in the desert I use a hysteresis of -2,+1 in the summer and -1,+2 in the winter. That was after trying about a jillion different things that kept the compressor on too long or cycled it too rapidly. This is something you'll have to experiment with, so make it a value you can change on the fly. Of all the weird things I ran into, the proper hysteresis curve was the most annoying.