A tool which helps build portable configuration scripts. It addresses the problem that different version of UNIX have minor differences all over the place (eg what files are called, where they are, etc). Developers can write configuration scripts in what amounts to a platform-independent language, and autoconf then generates a shell script which will carry out the configuration on any type of UNIX. The function it provides is essentially that of a subroutine library, but since there is no portable way to use subroutines in shell script, that's not how it's implemented.
Or, as GNU describes it:
"Autoconf is an extensible package of m4 macros that produce shell scripts to automatically configure software source code packages. These scripts can adapt the packages to many kinds of UNIX-like systems without manual user intervention. Autoconf creates a configuration script for a package from a template file that lists the operating system features that the package can use, in the form of m4 macro calls."