I assume you have a pretty good idea of the top level block diagram, isn't it? Try to devide these block into entities that you can estimate, i.e. UART, processor (if any), DSP functions, state machines, ...
Then you try to find a device that has enough I/O's, memory, logic to cover all these blocks with enough head room. Now look at the migration path of that device, can it grow and schrink? If you are at the top, you need a bigger package; at the bottom, it can probably fit in a smaller device.
Don't stuck to one vendor: compare the vendors against each other.
These are some practical guidelines that I'm using regularly.
Regards & good luck