You can use the methods
public CaretListener[] getCaretListeners()
public void addCaretListener(CaretListener listener)
public void removeCaretListener(CaretListener listener)
Before setting caret to position get all the caret listeners, remove them, set your caret position and readd them back.