I intend to, in situations like that, have the CICD deploy B and C right after A is deployed, so the name can be exported from stack A into B and C, of course this doesn't work in all situations, i.e. where you really want to have both the resources A-1 and A-2 so there's no downtime in the transition from B-1 to B-2. In situations like that I'm currently either explicitly naming the objects so they don't change, or putting A B and C all into the same stack.
(I say intend as I'm building this at the moment and currently manually deploy all the downstream stacks when I change something upstream)