Für den Code braucht es erst mal die Startbedingungen.
Beim Einschalten sollte wohl sinnvollerweise der erste Gang eingelegt sein.
Also muß sichergestellt werden, daß das Steuersignal entsprechend ansteht bevor der Servo mit Strom versorgt wird.
Dementsprechend muß auch die Merker Variable für den Gang vorbelegt werden.

Dann kommt die Abfrage der Tasten, Idealerweise per Interrupt und ISR.
Damit wird die Merker Variable inkrementiert/dekrementiert.
Entsprechend dem Wert derselben dann die Position angefahren.

Spätestens wenn man jetzt einfach ausschaltet ohne zurück in den ersten Gang zu schalten, kommt man mit einem RC-Servo beim nächsten Einschalten, Probleme.

Du wirst also mehr als 2 Taster benötigen, denn neben den Tasten zum Steuern mußt Du auch noch wissen wo Das Servohorn steht (1. Gang, zwichen 1. und 2., 2. Gang, zwichen 2. und 3., 3. Gang).
Im ungünstigsten Fall gibt es sonst einen Getriebschaden.