Прежде всего, в вашем случае нет необходимости преобразовывать его в градусы, поскольку Math.aTan2 возвращает угол в радианах, просто разделите переменную вращения на (2 * Pi).
Во-вторых, проверьте, что вы делаете в «t.Width / 2, t.Height / 2», так как вы не указали в своем вопросе, что такое «t», убедитесь, что его члены не являются целыми числами.
Теперь, что касается самой вашей проблемы, недостаточно предоставленной информации. Где это содержит вашу информацию о ротации? Является ли вектор «pixelpos» вашей позицией в мире или вы также используете это как вращение?
Приведенный к минимуму следующий код работает примерно так, как вы описали?
Vector2 pixelpos = new Vector2(0, 1);
float rotation = (float)(Math.Atan2(pixelpos.Y, pixelpos.X) / (2 * Math.PI));
Что дает 0,25 или 90 градусов.