Texture uses UV, Pixel effect uses Object Texture Coords
Two parts in this node tree:

Find the rotation of the empty


This is done using two radial gradient textures, one from the UVs one from the empty and get the difference.
As the gradient goes from 0 to 1, there is a discontinuity at the limit. To compensate that we look if this is a negative value and if it is set it back positive adding 1.
Then map from 0, 1 to 0, 2*pi in order to have the angle.

Use this rotation before snaping


From the angle above, rotate, snap and rotate back.
Note: set the image texture interpolation to closest as snap node may make glitches if not (this is not done in the file below).