The AXCAM Master needs to be High Speed Counter input from the Encoder, not another Axis. An Axis is probably driving what the encoder is monitoring (I'm guessing). Configure the Encoder high speed inputs as a Counter function. Then make that Counter's Accumulator be the Master, e.g. @HsCtrTmr1,, not $Axis1/2/3 that drives the encoder.
You configure High Speed Counters in the System Configuration dialog. From the BRX Local I/O page, select High Speed I/O. You see options for Axis, but also for Input Functions. Pick one of the Input Function resources (e.g. Function 1). Select Counter, then tie it to the specific X inputs that are wired to your encoder.
Make sure the X's are High Speed Inputs. Not all onboard inputs are high speed (they show up in the list as HS vs. Std). Also, make sure the filter values of your high speed inputs are good (you will be prompted). They default to "standard" input filter values (25 Hz) since majority of PLC applications do not utilize HSIO. Set them to at least 2x faster than what you think you need (4x?).
Make sure this Counter is behaving properly - trend $HsCtrTmr1.Acc to see it behaves similar to your virtual Axis as you actually drive the encoder. It may be scaled differently since the Axis values is the "driving" pulses, while the encoder is the "feedback" values - there may be a different factor involved. Regardless, if the shape and behavior appear good - just tweak the AXCAM table values to correspond to the $HsCtrTmr1.Acc master values vs. the $Axis0.CurrentPosition virtual axis values.
You may need to look at scaling the High Speed Counter/Timer - that's done in the same High Speed Counter dialog (right side). This is done by the high speed co-processor.