When using your origin, your position that you will see in the game will be slightly higher and to the left than without using a center origin, because you are subtracting the origin from the position when you rotate it.
Try storing your origin in a Vector2
and adding it to your position when you draw your object.
Vector2 Origin = Vector2(Texture.Width/2, Texture.Height/2);
spriteBatch.Draw(Texture, Position + Origin, null, Color.White, Rotation, Origin, 1, SpriteEffects.None, 1);