Something like this:
1. [long-term] Players choose a route based on campaign specifics and PC builds;
2. [short-term] the features of the site that they want (or not, if they don't care);
3. [short-term] how long they're willing to look for sites;
4. [short-term] which site they want from a few options;
5. [short-term] how to set up their camp at that site;
6. [short-term] to deal with any problems that arise from their choices up to this point;
7. [long-term] how to proceed with their route/long-term goal (which might only come up once in a while).
Short-term decisions, that affect the here-and-now of the game:
1. Why campsites matter.
There needs to be some reason for the players to choose one campsite over another. I think you'd achieve this by putting pressure on PC resources.
Rations: The need to use them up. Good sites may negate this, poor sites increase the rate of consumption. In the end this would boil down to GP. You could add gear to this, though generally maintenance is glossed over.
Time: NPCs do things the players don't want them to. Good sites are easy to get in and out of, poor sites may increase travel time.
Information: Good sites allow the PCs to see a lot, poor sites blind the PCs and/or allow the NPCs to spy on the PCs.
Long Rests: Can you get one? Good sites allow for a high chance to take a long rest. Probably the most important feature.
These pressures affect the short-term but should be able to bubble up to the long-term.
2. Choice of where to rest.
Make a check. DC is set by terrain. Modifiers: Time spent looking around, enemy actions, weather, PCs looking for a specific type of site ("We want to make sure there is a spring nearby.") - this may be the most important modifier, because you're asking the players to make a choice and need to balance the decisions.
The DM takes the result of the check and looks at the appropriate random tables. Terrain-based list of campsite benefits, drawbacks, and oddities. On a successful check, roll twice (or whatever) on the benefits and once on the drawbacks. Reverse for failures. The same number of benefits and drawbacks for success with complications. No drawbacks on a natural 20, no benefits on a natural 1. Always roll on the oddities.
If the players request a specific site feature and they succeed, add it as a benefit. If they fail, you can add it in or not (50% chance they find it or whatever you like), but if you add it in, make it a drawback.
Make at least two campsite options so the players can choose which one they want. Allow them to look for another if none of the options are appealing, but increase the DC to reflect the extra time taken (thus more drawbacks and lower chance to get the long rest in).
Player-skill option: Generate the campsites first and let the players choose.
Random table set-up:
Benefits & Drawbacks: Put similar benefits and drawbacks in the same range, e.g. all springs are listed together. If the players want to find a specific benefit you can just roll on that sub-table within the bigger table. e.g. All the springs are within the 25-30 range and you can roll 1d6 for the specific spring benefit.
Oddities. Set up that table so that some results are "none", the ratio based on the weird level of your campaign milieu.
Wandering Monsters: Not really an option as a drawback; possibly even more of a benefit! They don't cost resources because a long rest gives all of those back anyway, and you get XP and GP as a reward. There are cases where wandering monsters could work, but a lot of that is campaign-dependent (protecting someone, trying to remain hidden, other stuff...). That said, a lone orc willing to trade information for food and shelter or an army moving through the area, scavenging off the land to survive could be some good options.
3. Long Rests
Can you take a long rest or not? That's probably the most important question to answer. (I guess you could add in exhaustion, but the penalties at low levels of exhaustion are so punishing you may as well long rest again to get rid of them. Disadvantage to everything is like saying you need to long rest again. And that penalty creates a negative feedback loop if checks are required to get rid of exhaustion.)
So each campsite would need some kind of pressure on the ability to take a long rest. The way the players answer this should be left in their hands, through player decision, not a roll of the dice. (By that I mean you don't want to abstract it into a check or two; introduce the pressure, ask the players what their PCs do, and roll dice to resolve their actions if necessary).
A random table, terrain-based again, would help here. You want to make it easy on yourself as DM (and surprise yourself, if you're into that), so don't force yourself to ad-lib on the spot. Well-done items in the table would allow you to ad-lib based on the current campaign situation.
Long-term decisions
These are trickier because campaigns are all unique and campsites can be pretty similar. Imagine three different campaigns: The PCs are travelling to Ironslag to kill the Fire Duke before he builds his super-weapon; the PCs are escorting a caravan along the Trade Way to Waterdeep; the PCs are looking for a dungeon hidden in the Deep Forest. The PCs have different long-term goals so the decisions they make will be weighted differently. (In the first, time is valuable; in the second, security; in the third, information and rations I guess.)
You also don't want to make every camping decision affect the campaign in major ways. That's a lot of pressure on something as simple as where to hole up for the night.
I don't really know how this would work. I guess you could follow the player's lead - "We want to find a place with a good vantage point so we can watch the road to Ironslag" - and success there means they see the Fire Duke's drow and yak-men allies. Or you could roll on some vague table once in a while (or have a lot of "nothing" entries on the table) that says something like "Information: the PCs gain some information about their goal" or "Quick route: travel time is reduced to their destination" or "Allies!" or other things like that which make some kind of sense.
A major long-term decision for the players is the route, so maybe weighting the campsite benefit and drawback tables would be a good way to achieve this. More undead in the desert, more bandits on the road, that sort of thing.
So, looking at player decisions, let's see how this would play out (using the list of decisions from the top):
1. "Let's take the road to get to Ironslag instead of going through the Cold Wood. There will be more bandits along the way but we can hit up Citadel Adbar first."
2. "Nght is falling and a cold wind's blowing in from the north. What do you want to do?" "Let's find a spot that has good shelter from the environment."
3. "How long do you want to look?" "Until it gets dark, so a couple of hours?" "Okay. Give me a check."
4. (Players roll) (Success with complications) (DM rolls) (Benefit: Abandoned structure along the side of the road provides shelter from weather; Drawback: Shelter is infested with weevils, eating rations; Benefit: Hunting blind in a tree gives a good viewpoint of nearby area; Drawback: Site is easy to spot from the road; Oddity: A talking rat considers this place his home) "You find an old gnome-burrow beneath a large, hollow tree, both easily visible from the road. The only way is in through a very tight tunnel, so it'll take about an extra hour to get in there. But it looks like it'll provide shelter from any storm that might be brewing. There's also a shelter in the tree that provides a nice view."
5. "Let's move in and look for any problems. A good search before we put down bedrolls." "As you squeeze through the tunnel entrance you are greeted by a snarl from a honey badger. It talks! This my home!"
6. (They talk to the honey badger, make some rolls, it tells them about the weevils and they agree to share some rations with it if it keeps away the weevils)
7. (DM rolls and makes a note that they've been spotted by a drow scout who sends a message to Ironslag; I guess they should have put up a sentry in the tree)
That seems like it might work.
ncG1vNJzZmivp6x7prrWqKmlnF6kv6h706GpnpmUqHyurcqipaBlkWKwornPZ21sb2lmg3A%3D