sounds like you did the steps/mm calibration, but did you calibrate the filament itself?
measure the diameter of the filament in multiple places over several feet (couple of meters) to get an average diameter - enter that average into your software in the filament settings for "filament diameter".
then print a single wall calibration cube with the extrusion multiplier set at 1 - let it cool, then measure the wall thickness on all 4 walls and average those... the number you are shooting for will correlate with your nozzle size - a 0.4 nozzle should have a wall thickness of 0.48 - my guess is that your wall thickness is going to be larger initially - probably around 0.52-0.55...
once you have your average wall thickness, you need to calculate a new extrusion multiplier - the formula for that is:
desired measurement / actual measurement = extrusion multiplier
example: 0.48 / 0.52 = 0.923xxxxx (you should not need more than 3 decimal places for this, 2 is usually sufficient however)
enter the new extrusion multiplier in the software and make sure you save!
print the single wall calibration cube again, let cool, and measure the walls again - you should be at your target dimension.
All of that said - I have spool of Hatchbox red ABS that likes to "over-extrude" on the first layer - even after careful calibration. I have found that if I turn the flow rate down a little for just that first layer, I get better results.
SD4 #1 & #2 - Lawsy carriages, E3D v6, Rumba controller board, mirror bed plate, X motor fan, upgraded PSU & Mica bed heater
SD4 #3 - in the works ~ Folgertech FT-5, rev 1
Printit Industries Beta Tester - Horizon H1