A US Senate panel has taken the rare step of refusing to endorse Mr Bolton, but nevertheless sent the nomination to the full Senate for confirmation.
The Bush administration had hoped that Mr Bolton would receive the seal of approval of the committee’s 10 Republicans.
Their backing would have improved his odds for success in the full Senate.
However some Republicans refused to give him their endorsement.
Ohio Senator George Voinovich described Mr Bolton as “the poster child of what someone in the diplomatic corps should not be.”
Mr Bolton’s nomination was apparently saved by a deal in which several Republicans agreed to forward his nomination for the UN post, but refrained giving him their explicit backing.
A date has not been set for the vote in the Senate where Republicans hold a 55 to 45 majority.
Mr Bolton is currently undersecretary for arms control and international security at the US State Department.
Democrats have been united in opposition to Mr Bolton, while four of the committee’s 10 Republicans expressed serious reservations.
The debate in the divided committee was the latest showdown between Senate Democrats and Republicans, who have wrangled bitterly for weeks.
The panel has spent weeks examining allegations that Mr Bolton misused or hyped flawed intelligence on issues including China, Iran, North Korea and Syria.
Even his ex-boss, former secretary of state Colin Powell, reportedly told lawmakers that Mr Bolton had been a problematic official.
If confirmed by the Senate, he would have to fight the US case on vital foreign policy issues, ranging from nuclear programs in Iran and North Korea to the future of the world body itself.