it's your programming. You have to do do inter-digit blanking. What does that mean? You do have to turn off the segment signals briefly before enabling the next digit.
So, it may not be flicker, but the previous on segments are "ghosted" to the next selected digit. Change th order for fun and see if looks different. Instead of 1,2,3,4 use 1,4,2,3 as the scanned digits.
or
display 8888 or 1111 and see if there is flicker. If there isn't then it's inter-digit blanking.