Use references for parameters that must exist and won't be rebound. Use pointers when you need nullptr or reassignment. References work for operator overloading, pointers for data structures.
If storing something that might change what it refers to, use a pointer. Reference members can't be reassigned after construction. Linked lists need pointers. I start with references and switch to pointers only when hitting limitations.
References have simpler syntax and prevent null errors.