Changing the origin changes the part of the sprite that is at the sprite's position.
This is important to remember.
e.g.
If a sprite is 100x100 and at position (100, 100).
If its origin is at top-left (0, 0), its top left will be at (100, 100) and its centre will be at (150, 150).
It its origin is at centre (50, 50), its centre will be at (100, 100) and its top-left will be at (50, 50).
Basically, set its origin where you want to rotate it and then position that point where you want it.
In your case, set its origin to its centre (and keep it there) and then position its centre when the centre should be.
This means that when its "not rotated", it should have a rotation of 0 and its position should be half of its size added on to where you think its top-left should be.
To be more complete, I shall just add that all transformations are applied around its origin so it rotates around it, scales from/to it and its position matches it.