Arduino UNO and CUI encoder (SPI )

I got the code working

here is the update code

#include <SPI.h>
void setup()
{
  SPI.begin();
  pinMode(3,OUTPUT);//Slave Select
  SPI.setBitOrder(MSBFIRST);
  SPI.setDataMode(SPI_MODE0);
  SPI.setClockDivider(SPI_CLOCK_DIV32);
  digitalWrite(3,LOW);
 byte response = SPI.transfer(0x00);
 digitalWrite(3,HIGH); 
  Serial.begin(9600);
}

void loop()
{ 
digitalWrite(3,LOW);
 byte response = SPI.transfer(0x10);
 digitalWrite(3,HIGH); 
     Serial.print("I received: ");
     Serial.println(response ,DEC);  
     
delay(1000);
}

I am getting 3 reading and the buffer doesn't reset after each reading. 2 of the reading are junk or i am not sure what they are.

I looked at the encoder data sheet and it state this

Command 0x10: rd_pos
This command causes a read of the current position.
The sequence is as follows:

  1. issue read command, receive idle character
  2. issue NOP, receive idle character 0xA5 or 0x10
  3. repeat step 2 if it is 0xA5
  4. issue NOP and receive MSB position (4 bits valid data)
  5. issue NOP and receive LSB position (8 bits valid data)
    Note that it is possible to overlap commands, so instead of NOP is several steps above
    the user could start another operation. The read and write FIFOs for the PCI streams are
    16 bytes long and it is up to the user to avoid overflow

full datasheet can be found here
http://www.cui.com/product/resource/amt203.pdf

So the code gives what i expect it to receive. How to work with buffer? or how to select certain thing to be displayed instead of displaying everything. I think it display the position then MSB and LSB which i don't know how to remove them and just keep the display for the position. Also, I have 1 second delay, let say i rotate the encoder after couple of second i get the right position reading. as if the data was in a buffer and it send old data. so, is there a way to reset the buffer for each reading ? I don't want to get old data....