If you use things that are Framerate Dependent (Update or things with deltatime) then it can cause this.
I see your coroutine yield return null and a yield break? somewhere in there is most likely a WaitForSeconds()
That is framerate dependent. If you do not want the routine to be framerate dependent then you can use WaitForFixedUpdate() or put the movement in FixedUpdate() These have a fixed timestep loop