Ich mach das bei Nur-Text-LCDs und genügend Speicher immer so, dass ich den aktuellen Displayinhalt in eine String-Variable speichere.
Soll was geändert werden, wird der neue Inhalt in eine 2. Variable geschrieben. Am Ende der Main-Loop werden beide verglichen. Sofern unterschiedlich: Neu aufbauen, alten String = neuen String setzen.

Es wird also nur dann was zum LCD geschickt, wenn sich auch was ändert.