Yes, you need to use a timer. Every time it interrupts you need to update the display. The interrupt should occur often enough to drive the display, but not so often that it consumes the processor. This will create a fake background task for updating the display while you wait for the value to change. This is the software implementation.
You could also do a hardware implementation, where you do not multiplex the display. Instead you drive them with shift registers. This will allow you to update once and leave them alone.