Once you write a character to the LCD it stays there until it is overwritten.
To 'erase' a character you have to overwrite it with a 'space'.
The best way to deal with displaying changing data is to:
(1) position the cursor
(2) display enough spaces to cover up all of the earlier data
(3) reposition the cursor
(4) display your new data
lcd.clear is not a good choice because (1) it takes a long time and (2) it may cause flicker (as you have seen).
Don