Ease-in-out function

Something to try would be the parametrized function $$ f_\alpha(x)=\frac{x^\alpha}{x^\alpha+(1-x)^\alpha} $$ $f_1(x)=x$ and $f_2(x)$ looks like this

$\hspace{5cm}$curve

As $\alpha$ gets bigger, the slope in the middle becomes greater and the ends at $x=0$ and $x=1$ become flatter. As $\alpha\to\infty$, the curve tends toward a step function.

These functions have the nice property that $f_a\circ f_b=f_{ab}$. Thus, $f_a$ and $f_{1/a}$ are inverses.


You could also use a polynomial that's $0$ at $0$, $1$ and $1$ and has zero derivative at both ends; the unique polynomial of degree $3$ with those properties is $y=x^2(3-2x)$.

In both of those functions, you can replace $x$ by

$$u=\frac12+\frac{\arctan\left(\alpha\left(x-\frac12\right)\right)}{2\arctan\frac\alpha2}$$

and choose $\alpha$ to achieve the desired steepness, with $\alpha\to0$ corresponding to $u=x$ and $\alpha\to\infty$ corresponding to a step function.