The discrete adjoint of an incompressible Navier-Stokes algorithm in generalized coordinates is derived and applied to estimate the states of saturated and turbulent circular Couette flows. The forward Navier-Stokes model is based on the fractional-step algorithm in curvilinear coordinates on a structured grid [1], which has been widely adopted in direct numerical simulations of transitional and turbulent flows. The discrete adjoint equations adopt the same stencil and temporal scheme as the forward discretization, and expressions are derived that relate the discrete adjoint variables to their continuous counterpart. The key ingredients of the forward algorithm can be retained in the adjoint, including the computation of the cell geometry, the approximate factorization method, and the parallelization strategy. The accuracy, efficiency, and stability of the adjoint solver are also commensurate with the forward model. In addition, a novel symmetric projector is proposed to guarantee that the outcome of the adjoint algorithm is divergence free. The implementation of the algorithm in double precision satisfies the forward-adjoint relation up to eight significant figures, and further validation is performed using circular Couette flow. The forward and adjoint growth rates of instability modes from linear theory are accurately reproduced. In addition, an adjoint-variational data-assimilation algorithm (4DVar) is adopted to reconstruct the initial condition of circular Couette flows from limited measurements, obtained from an independent simulation. When the flow is comprised of saturated wavy vortices, wall measurements are sufficient to reconstruct an initial condition that latches onto the target state after a short time. For the more challenging turbulent case, coarse-grained velocity data are used to estimate the initial condition.