You are right about the jump thing. This happens because a human cannot press a switch for a precise duration and so the controller detects it continously for some time.
To prevent this and to take the input only once at a time you’ll need to add a small circuit for Edge Triggering. Check this link for an example of positive edge triggering. You can then modify your circuit accordingly.