why not have toggleStepper() perform just one step and have it and toggleLight() called repeatedly within loop().
toggleStepper() could be passed a "step" argument. it keeps track of the step it's on and move in the appropriate direction to step toward "step" not stepping at all if already at that step