John Swinney has vowed to make progress on eradicating child poverty but admits it cannot be eradicated overnight.