Cosi ancora meglio, se clicchi nuovamente nel bottone si ferma (inoltre ho definito l'oggetto fuori dalla funzione, altrimenti si ripeteva inutilmente):

codice:
<html>
<head>
<script type="text/javascript">
  window.onload=function(){
    var oggetto=document.getElementById("mioBottone");
    oggetto.addEventListener("click",cambia);
var timer1;
var x=0;
var y=0;
var intervallo;
function cambia(){
x=x+50;
y=y+50;
this.style.fontSize="40";
this.style.backgroundColor="cyan";
this.style.borderColor="blue";
this.style.color="red";
this.style.position="absolute";
this.style.top =y;
this.style.left =x;
this.removeEventListener("click",cambia);
this.addEventListener("click",ferma);
intervallo=setInterval(sposta,1000);
}
    
    function sposta(){
      
      x=x+50;
      y=y+50;
      oggetto.style.top =y;
      oggetto.style.left =x;
    }
    function ferma(){
      clearInterval(intervallo);
    }
    

    
  }
</script>
</head>
<body>
<input type="button" id="mioBottone" onclick=""  value="cliccami">     

</body>
</html>