Using RS flip-flops to solve this problem
Here's some untested microcontroller pseudo-code to analyse. This would be simple to implement on an Arduino platform or similar. If you insist on using logic circuits it may help you work out the logic.

// Three buttons, left, centre and right: btnL, btnC, btnR.
// Two motors: motorX moves right, motorY moves left.
// Position: p

void loop(){
  // Left motion
  if(btnL &amp;&amp; (p &gt; 0) {motorX = true} else {motorX = false}

  // Right motion
  if(btnR &amp;&amp; (p &lt; 1000) {motorY = true} else {motorY = false}


  // Centre-cross detection
  // The variable 'centrePass' tracks whether a mid-point transition has occured.
  if(btnC &amp;&amp; motorX &amp;&amp; (p &gt;= 500) {centrePass = true}
  if(btnC &amp;&amp; motorY &amp;&amp; (p &lt;= 500) {centrePass = true}
  if(!btnC) centrePass = false

  // Centre motion
  if(btnC &amp;&amp; !centrePass) {
    if(p &lt; 500) {motorX = true} else {motorX = false}
    if(p &gt; 500) {motorY = true} else {motorY = false}
  } else {
    motorX = false;
    motorY = false;
  }
}