My first step would be to conduct a job analysis for every single job category in the company. Next, I would create tiers of pay for various job categories, tied to qualifications, responsibilities, and levels of difficulty. At that point, I would have a basis for different pay rates for all employees, one that is not capricious or arbitrary.
In conjunction with that, I would research pay rates in my particular industry, since I must compete within that industry to attract employees, and, on the overhead side, to keep my costs low.
Now, having said all of that, it would be difficult to maintain the present workforce if the results of these steps is that some people will make less money than they have before. People are likely to leave or be quite disgruntled and unproductive. The "floor" for a pay scheme might have to be whatever the employees are presently paid, in order to maintain operations, with higher job categories getting raises and others remaining where they are. Any attrition would enable the company to replace with the proper new rate.
All of the above is based on the presumption that these are not union employees. If they are, the collective bargaining agreement must be preserved, but in preparation for negotiations for a new agreement, the steps above can certainly be taken.
In either case, employees have the reasonable need to feel that their paycheck is linked to some unbiased and supportable standard, not at the whim of the company.