As with Kirk, there's something to be said about taking what is essentially a desk job. As a captain, you have some degree of autonomy and you get to be out there, looking at the strange new worlds, instead of reading reports and looking at pictures about them. Spock noted this to Admiral Kirk in The Wrath of Khan
Your mistake, if I may be so bold, was promotion. Commanding a Starship is your first best destiny. Anything else is a waste of material.
Picard faced a similar choice when he rejected an offer by his mentor to leave Starfleet and join him doing archeological work, an offer that was extended again after some time. From TNG: The Chase
PICARD: I had a long talk with Professor Galen last night. He asked me to leave the Enterprise, to join him in an archaeological expedition which could last for nearly a year.
CRUSHER: That must be tempting.
PICARD: I couldn't leave the Enterprise. But the offer raised in me certain feelings of regret.
CRUSHER: That you could have been an archaeologist and not a starship Captain?
PICARD: No, not really. I'm not sorry for the path I chose. But the Professor did not choose this figure at random. The many voices inside the one. You see, he knows that the past is a very insistent voice inside of me. This gift is meant to remind me of that.
CRUSHER: And the exploration of space? Surely that must count for something.
PICARD: I wouldn't trade it for anything, and I would still make the same choice I made all those years ago. I just wish that I didn't have to say no to him a second time.
It's likely that career advancement beyond Captain was not on Picard's radar. Picard demurs when offered a promotion to the admiralty directly as well. From TNG: Coming of Age
QUINN: That's not enough. I want to promote you to Admiral, and I want you to take over as Commandant of Starfleet Academy.
PICARD: Then there was never a problem with the Enterprise.
QUINN: No, but I had to be sure you hadn't been co-opted.
PICARD: Greg, this is politics, and I'm not good at politics. Surely there are others who are better suited.
QUINN: All right. Even if I am wrong, and I hope I am, you're still the best man for the job.
Even Quinn has to admit Picard is better suited as a Captain by the end of the episode
QUINN: Wish I could convince you to change your mind.
PICARD: I'll serve you better here.
QUINN: This is where you belong.
There's also the point that Memory Alpha makes: Picard may not have been Captain of the Stargazer the whole time, but merely a commanding officer
It is unlikely Picard was promoted directly to the rank of captain as he was assigned command of Stargazer, but more likely to the rank of commander before being promoted to the higher grade later. In accordance with naval rank tradition, one does not have to hold a captain's rank to command a vessel (most were actually commanded by officers holding the rank of commander), and anyone who is commanding is called 'Captain' regardless of rank.
Picard only made the jump to Admiral in 2381 (48 years after assuming command of the Stargazer) when he was trying to build a rescue fleet for the Romulan homeworld, a project he was deeply passionate about, and demanded his direct command over a fleet. From PIC: Remembrance
REPORTER: You can't tell us how you felt, but your initial actions were to call for a massive relocation of Romulans?
PICARD: Well, the Romulans asked for our help, and I believed we had a profound obligation to give it.
REPORTER: Many felt there were better uses for our resources than aiding the Federation's oldest enemy.
PICARD: Well, fortunately, the Federation chose to support the rescue effort.
REPORTER: Yes. Initially.
PICARD: I have been known to be persuasive. But the Federation understood there were millions of lives at stake.
REPORTER: Romulan lives.
PICARD: No. Lives.
REPORTER: You left the Enterprise to command the rescue armada. 10,000 warp-capable ferries. A mission to relocate 900 million Romulan citizens to worlds outside the blast of the supernova. A logistical feat more ambitious than the pyramids.