You should be able to create a udev rule that either looks at the pid/vid or the serial number in order to set the port name so that it doesn’t change. Eg see linux - How to bind USB device under a static name? - Unix & Linux Stack Exchange
I think it may change if the device is unplugged and plugged back in again, or the USB bus thinks that has happened which can happen on the fly sometimes.
udev rules is the way to go if serial/by-id does not work for you. I have never had any problem with by-id though.
I found this useful when trying to use udev