Overlapping subproblems is a property of a problem where the same subproblems are solved multiple times in a recursive algorithm. This characteristic is efficiently addressed using dynamic programming by storing the results of these subproblems to avoid redundant computations, thus optimizing the overall solution process.