The naive way to display a changing number on an LCD: lcd.clear(); lcd.print("count: "); lcd.print(n);. Every loop. It works, but the screen flickers because lcd.clear() takes ~2 ms and leaves the display blank during that window. Update fast enough and your eye catches the gap.
The fix is to not clear
The LCD is a grid of cells. You can write to any cell at any time. lcd.setCursor(col, row); lcd.print(n); writes only at that position. If the new number is the same length as the old, the new digits just overwrite the old digits in place. No flash. No clear.
The wrinkle: shorter new values leave stale digits behind. If you printed "100" and the next value is "99", you'll see "990" or "100" depending on what was left. The fix is to pad: print with a fixed width, or follow up with spaces to clear the trailing cell. lcd.print(" "); lcd.setCursor(col, row); lcd.print(n); — three lines, no flicker, no garbage.
The same principle scales to every screen
OLED libraries, e-ink, even modern terminal apps: the rule is the same. Redraw only what changed. clear() is a hammer; setCursor is a scalpel. UIs that feel "responsive" are usually doing surgical updates; UIs that feel "twitchy" are usually clearing and redrawing everything.