You get this exception when the element you are interacting with has been changed in the DOM. If you capturing the element in the WebElement object and then using that object further to perform some clicks/typing and if in between the reference to that element changed, then the object you are using will no longer refer to a correct locator. Try using the element locators at the time of interacting with the element instead of capturing it in a WebElement object first and then using that object further.
E.g. instead of doing :
WebElement e = driver.findElement(By.id("someID"));
e.click();
.
.
.
e.click();
try to use :
driver.findElement(by.id("someID")).click();
.
.
.
driver.findElement(by.id("someID")).click();
Otherwise, you can use Vinay's method.